An IC card is constructed by embedding an IC (Integrated Circuit) chip into a plastic card substrate and has external terminals of the IC chip on its surface. As external terminals of the IC chip, there are a power terminal, a clock terminal, a data input/output terminal, and the like. A connecting apparatus directly supplies a power source and drive clocks from the external terminals to the IC chip, so that the IC chip operates. The IC card exchanges information with the connecting apparatus such as a terminal or the like by transmitting and receiving an electric signal to/from the connecting apparatus via the external terminals. As a result of the information exchange, the IC card transmits a calculation result and stored information or changes the stored information. The IC card can have a function for executing a security process such as protection of secret data, personal identification, or the like on the basis of those operation specifications. The IC card is used as a user device for personal identification in a system of credit settlement, banking, or the like which needs security of secret information.
The IC card which is used in the security system needs to be designed so that when an arithmetic operation is executed by using the secret information, the secret information or information by which the secret information can be presumed is not leaked to the outside. That is, it is necessary that the IC card has tamper-resistance. As an attacking method for analyzing the secret information which must not be leaked to the outside, a timing analysis, an electric power difference analysis, a failure use analysis, or the like is known.
The timing analysis is an attacking method whereby when a cryptographic processing time differs depending on contents of the secret information, the time difference is statistically analyzed and the secret information is presumed. There is a case where when a cryptographic algorithm is implemented, optimization such that unnecessary processes are skipped or a branching process is executed in dependence on the contents of the secret information is applied for the purpose of shortening the processing time or reducing a program size. If such optimization is applied, the cryptographic processing time differs depending on the contents of the secret information. Therefore, there is a possibility that the contents of the secret information can be presumed by checking the processing time.
The electric power difference analysis is an attacking method whereby electric power which is supplied from the power terminal of the IC card is measured during execution of a cryptographic process and a difference in electric power consumption is analyzed from the measured power, thereby presuming the secret information.
The failure use analysis is an attacking method using a calculation error of the IC card. A transient failure is caused or a limited trouble in a range where it does not affect other functions is given to the IC card, thereby making the IC card execute an abnormal process which the attacker desires. If an error is caused on purpose by applying a high voltage to the IC card or momentarily fluctuating a clock frequency or a drive voltage, there is a possibility that the secret information is obtained from a wrong calculation result which is thus obtained and a correct calculation result.
The IC card must have countermeasure means against those attacking methods in practical use.